Workload scheduling is an increasingly important component of an IT environment. Indeed, many grid computing environments are driven by the scheduling of work across a distributed set of resources (e.g. computation, storage, communication capacity, software licenses, special equipment etc.). Workload scheduling systems typically comprise a means for scheduling a complex set of automated tasks on the machines of an IT infrastructure and making sure that each task is executed on time and only when a given dependency or prerequisite condition is met. In order to do that, some workload scheduling systems allow the definition of tasks to be executed together with a set of rules to be met for creating an execution plan. To this end, the workload scheduling system elaborates the rules, considering time dependencies and any other constraint, and builds a plan whose execution is monitored by the user.
Many simple workload scheduling systems use time as a primary driver for the scheduling of tasks. In other words, in these workload scheduling systems, tasks are defined to run on a primarily periodic basis (subject to other pre-requisite conditions being met). In order for tasks to be run when particular events happen (regardless of the time at which these events happen), commercial workload scheduling systems often include an “event-management” feature which allows the definition of rules that are triggerable by defined events (to perform defined tasks). However, prior art workload-scheduling systems are essentially uni-variate in nature, i.e. varying with respect to only one parameter. Simple workload scheduling systems use time as a primary driver, i.e. single variant, and commercial workload scheduling systems include “event management” as a kind of “add-on” that allows workload scheduling on an event-driven basis, regardless of time.